package com.tinyspot.concrete.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author Tinyspot
 * @date 2023-01-06 21:12
 */
public class TypeConvertUtil {

    /**
     * 转为 Integer
     * @param value
     * @return
     */
    public static Integer parseInteger(String value) {
        if (StringUtils.isEmpty(value)) {
            return null;
        }
        try {
            return Integer.parseInt(value);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 转为 Integer
     * @param value
     * @param defaultValue 默认值
     * @return
     */
    public static Integer parseInteger(String value, int defaultValue) {
        if (StringUtils.isEmpty(value)) {
            return defaultValue;
        }
        try {
            return Integer.parseInt(value);
        } catch (Exception e) {
            return defaultValue;
        }
    }

    public static Long paseLong(String value) {
        if (StringUtils.isEmpty(value)) {
            return null;
        }
        try {
            return Long.parseLong(value);
        } catch (Exception e) {
            return null;
        }
    }

    public static Double parseDouble(String value) {
        if (StringUtils.isEmpty(value)) {
            return null;
        }
        try {
            return Double.valueOf(value);
        } catch (Exception e) {
            return null;
        }
    }

    public static String parseString(Integer value) {
        if (value == null) {
            return null;
        }
        try {
            return String.valueOf(value);
        } catch (Exception e) {
            return null;
        }
    }

    public static JSONObject parseJSONObject(String value) {
        if (StringUtils.isEmpty(value)) {
            return null;
        }
        try {
            return JSON.parseObject(value);
        } catch (Exception e) {
            return null;
        }
    }

    public static Date parseDate(String date) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return format.parse(date);
        } catch (ParseException e) {
            return null;
        }
    }

    public static String formatDate(Date date) {
        if (date == null) {
            return null;
        }
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return format.format(date);
    }

}
